草庐IT

c++ - CppUnit泄漏

全部标签

c - 当进程尚未完成时,GetExitCodeProcess() 返回 1

如果我为它创建一个进程和两个管道集,并且该进程在特定时间需要一些用户输入,WindowsCAPI中的GetExitCodeProcess()总是返回1。例如,您可以使用Windowstime命令,这将返回:Thecurrenttimeis:...Enterthenewtime:然后不等待输入直接退出。我不希望进程在它真正完成之前结束,这样我就可以通过管道向它输入。我该如何解决这个问题。我已经构建了这个循环(我仍然希望能够确定处理何时完成):for(;;){/*Pipeinputandoutput*/if(GetExitCodeProcess(...)!=STILL_ACTIVE)bre

windows - 告诉故事内存碎片的迹象(而不是内存泄漏)?

首先我意识到泄漏会导致内存严重碎片化,但请耐心等待。使用WinDbg并附加到进程:使用!heap(或另一个WinDbg命令),如果我正在处理内存碎片而不是泄漏,我应该期待什么?例如,我可以使用“!heapstat”和“!heapstat-hhandle”来归零产生泄漏的代码;但是在这些相同的返回值中是否有暗示碎片化的东西?XP和Vista之间的内存分配是否发生了根本性变化?特别是与DLL和其他库加载有关?我们一直只在XP上开发,所以我不熟悉Vista,但事实证明,当我们在Vista上安装相同的二进制文件时,我们在XP上看到的某些内存问题就会消失。谢谢! 最佳

c - 有效地为不同的 Windows 版本使用不同的 API

我面临着使用可用的新Windows运行时功能的需要,并回退到新功能不存在的旧功能。代码路径对性能至关重要。如果平台(Windows8/WindowsServer2012)提供,我需要调用GetSystemTimePreciseAsFileTime,如果不存在较新的版本,则回退到GetSystemTimeAsFileTime。我知道我可以使用LoadLibrary和GetProcAddress加载GetSystemTimePreciseAsFileTime如果失败,回退到GetSystemTimeAsFileTime。我担心通过另一层间接调用像这样对性能至关重要的东西对性能的影响。是否有

c++ - 我如何找到 Win32 中的资源泄漏?

运行几个小时后,我的应用程序无法创建新的字体对象:CreateFontIndirect()returnsNULL.我知道如何查找内存泄漏(即使用并行检查器或其他分析器-其中大部分包括泄漏检测)。但是如何定位Win32中的资源泄漏? 最佳答案 为自己准备一份GDIView-这个有用的工具可以显示您的应用程序使用的所有GDI对象,包括字体名称、大小等详细信息。这在过去被证明非常方便。对于Win32应用程序,您可能需要查看WTL框架-它使用轻量级C++类包装GDI对象,为您处理对象删除。 关于

c - Windows 函数的链接错误

我正在尝试测试标准库(kernel32.dll)是否具有其中一项功能。测试代码片段:externvoidCreateProcessA(void);intmain(void){CreateProcessA();return0;}代码编译链接如下:cl/ctest.clinktest.objkernel32.lib这段代码可以用VisualC++很好地编译,但是不能链接:test.obj:errorLNK2019:unresolvedexternalsymbol_CreateProcessAreferencedinfunction_main但是函数CreateProcessA确实存在于ke

c - strncasecmp() 函数的源代码

有人有这个功能的源代码吗?我认为它在Unix下可用,但我正在使用Windows。当然我首先尝试了谷歌,但还没有找到解决方案,“strncasecmp.c”的函数也只需要2个而不是3个参数。无法提供更多信息,因为这不是我的代码。他是这样用的:int_tcsnicmp(constchar*c1,constchar*c2,intl){returnstrncasecmp(c1,c2,l);} 最佳答案 #definestrncasecmp(x,y,z)_strnicmp(x,y,z) 关于c-s

c++ - wcsdup 分配的内存是否应该显式释放?

类似wcsdup的函数,隐式调用malloc为目标缓冲区分配内存。我想知道因为内存分配不是很明确,所以显式释放存储似乎合乎逻辑吗?这更像是一个设计困境,赞成和反对的理由如下应该被释放因为不释放它会导致内存泄漏。有据可查的是,wcsdup/_wcsdup调用malloc来分配内存,即使它是从C++程序调用的。不应被释放,因为wcsdup积累的内存最终会在程序退出时释放。在整个程序生命周期中,我们总是会遇到一些内存泄漏(除非我们大量调用wcsdup以获得较大的缓冲区大小)。它可能会造成混淆,因为free之前没有明确的malloc。由于它不是标准的一部分但符合posix,Microsoft实

c - 如何确定存储类型(SSD 驱动器或 HHD .mechanical 驱动器),使用 C 语言

如何从C程序中读取驱动器的硬件信息?(即确定驱动器是SSD还是机械磁盘。) 最佳答案 SSD应该将自己标识为非旋转。例如,对于linux,您可以通过sysfs获取信息:cat/sys/block/sda/queue/rotational如果它返回0,则您有SSD... 关于c-如何确定存储类型(SSD驱动器或HHD.mechanical驱动器),使用C语言,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

c++ - 适用于 Windows 7 的简单 "javac"样式命令行 C/C++ 编译器

在过去的几个月里,我在JDK和我选择的文本编辑器(Notepad++)的帮助下练习了Java控制台编程。我喜欢它的简单性,因为程序可以从命令行简单地使用javac编译并使用java运行。现在,我正在寻找类似的C/C++编译器,这样我就创建了一个.c或.cpp文件并在命令提示符下编译它,它所做的只是创建一个“native”可执行文件,它可以是直接从命令提示符运行。因此,不需要任何臃肿的IDE。我之所以要找这么简单的编译器,是因为它要给高中生使用,所以我建议我尽量避免使用任何IDE,这样学生就可以练习所有C/C++语言的概念而无需不得不去IDE。我可以使用哪个编译器来完成这项工作?此外,我

c - 独立于汇编操作系统的原子比较和交换

我正在编写独立于操作系统的无锁队列,队列工作正常(使用默认的windows\linux原子CAS),但我想在linux和windows中不做任何更改的情况下使队列工作。所以我想我应该在汇编器中编写自己的CAS,或者有其他方法可以实现它?到目前为止我有这段代码:global_CAS_CAS:moveax,[esp+4]movedx,[esp+8]movecx,[esp+12];XCHGeax,edx我知道我仍然需要在CMPXCHG之前添加lock并且它应该与结构一起工作,但现在我更感兴趣的是让它工作。我使用nasm-2.10.05和这个命令编译nasm.exe-felf-ocas.oca